/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package caintra.Sapra.Pantalla.Direccion;

import caintra.Sapra.Internacional.DBManager;
import java.util.List;
import org.sapra.dao.Colonia;
import org.sapra.dao.Direccion;
import org.sapra.dao.Estado;
import org.sapra.dao.Pais;
import org.sapra.dao.Poblacion;

/**
 *
 * @author luiz
 */
public class DireccionQuery {
    
    String sql="";
    
    public List<Pais> paises(){
        List<Pais> lista;
        try {
            sql="select * from pais ORDER BY paisId";
            lista=DBManager.getQuery(Pais.class,sql);
        } catch (Exception e) {
            return null;
        }
        return lista;

    }
    public List<Estado> estados(Pais pais){
        List<Estado> lista;
        try {
            sql="select * from estado WHERE fk_paisId="+pais.getpaisId();
            lista=DBManager.getQuery(Estado.class,sql);
        } catch (Exception e) {
            return null;
        }
        return lista;

    }
    
    public List<Poblacion> poblacion(Estado estado){
        List<Poblacion> lista;
        try {
            sql="select * from poblacion WHERE fk_estadoId="+estado.getestadoId();
            lista=DBManager.getQuery(Poblacion.class,sql);
        } catch (Exception e) {
            return null;
        }
        return lista;

    }
    public List<Colonia> colonia(Poblacion pob){
        List<Colonia> lista;
        try {
            sql="select * from colonia WHERE fk_poblacionId="+pob.getpoblacionId();
            lista=DBManager.getQuery(Colonia.class,sql);
        } catch (Exception e) {
            return null;
        }
        return lista;

    }
    
    
    public List<Direccion> getDireccion(int direccionId){
        List<Direccion> lista;
        try {
            sql="select p.paisId AS paisId,"
                    + " p.nombre AS sPais, "
                    + " e.estadoId AS estadoId,"
                    + " e.nombre AS sEstado, "
                    + " pob.poblacionId AS poblacionId,"
                    + " pob.nombre AS sPoblacion, "
                    + " c.coloniaId AS coloniaId,"
                    + " c.nombre AS sColonia, "
                    + " d.* "
                    + " FROM direccion d "
                    + " INNER JOIN colonia c  "
                    + " ON d.fk_coloniaId=c.coloniaId "
                    + " INNER JOIN poblacion pob "
                    + " ON c.fk_poblacionId=pob.poblacionId"
                    + " INNER JOIN estado e  "
                    + " ON pob.fk_estadoId=e.estadoId "
                    + " INNER JOIN pais p "
                    + " ON p.paisId=e.fk_paisId "
                    + " WHERE direccionId="+direccionId;
            lista=DBManager.getQuery(Direccion.class,sql);
        } catch (Exception e) {
            return null;
        }
        return lista;
    }
    
    
    public int insert(Direccion d){
        int response=0;
        try {
            sql="INSERT INTO direccion(calle,numero_exterior,numero_interior,fk_coloniaId,tipoDeVia)"
                    + " VALUES("
                    + " '"+d.getcalle()+"',"
                    + " '"+d.getnumero_exterior()+"',"
                    + " '"+d.getnumero_interior()+"',"
                    + " "+d.getcoloniaId()+","
                    + " 'CA')";
            response = DBManager.Update(sql);
        } catch (Exception e) {
            return response = 0;
        }
        return response;
    
    }
    public int update (Direccion d){
        int response=0;
        try {
            sql="UPDATE direccion SET "
                    + " calle='"+d.getcalle()+"',"
                    + " numero_exterior='"+d.getnumero_exterior()+"',"
                    + " numero_interior='"+d.getnumero_interior()+"',"
                    + " fk_coloniaId="+d.getcoloniaId()+" "
                    + " WHERE direccionId="+d.getdireccionId();
            response = DBManager.Update(sql);
        } catch (Exception e) {
            return response = 0;
        }
        return response;
    
    }


}
